package com.dp.appi.service;

import java.util.List;
import java.util.Map;

/**
 * Created by xiaoji on 2016/4/27.
 */
public interface CodesetService {

    /**
     * 获取点位信息
     * @return
     */
    List<Map<String,Object>> ptList();

    /**
     * 获取导线类型列表
     * @return
     */
    List<Map<String,Object>> wireList(Map<String, String> param);

    /**
     * 获取典射版本
     * @return
     */
    List<Map<String,Object>> codesetVersion(int codesetType);
    List<Map<String,Object>> codesetVersionShouChang();
    /**
     * 根据工程ID得到工程典设版本
     * @param proid
     * @return
     */
    List<Map<String,Object>> GetcodesetVersionListByProid(Long proid);

    /**
     *   根据版本id删除版本下面所以得材料
     * @param codesetVersionid
     */
    void delVersionMaterialByid(Long codesetVersionid);
    /**
     * 添加版本
     * @return
     */
    Long addcodesetVersion(Long pro_id, String pro_name);
    Long addcodesetNew(Long codesetVersionid ,String codesetname, String codesetnumber,Long ptid,String keyword);
    /**
     * 复制典设主表
     * @return
     */
    Long  copyCodeset(Long codesetid,Long codesetVersionid);
    Long  copyCodesetExperence(Long exploration_id,Long codesetid);

    /**
     * 收藏典设到个人（版本id为1）
     * @param codesetid
     * @param userid
     * @return
     */
    Long  collectionCodeset(Long codesetid,String  userid);

    /**
     * 复制一个典设的材料到另一个典设
     * @param codesetid
     * @param newcodesetid
     * @return
     */


    Long  copyCodesetMaterial(Long codesetid,Long newcodesetid);

    /**
     * 删除典设和下面的材料
     * @param codesetid
     */
    void delCodesetByid(Long codesetid);

    /**
     *   修改项目典设的编号和名字
     *
     * @param codesetid
     * @param codesetidname
     * @param codesetnumber
     */
    void modfyCodesetNameById(Long codesetid,String codesetidname,String codesetnumber);

    /**
     * 添加版本材料

     * @return
     */
    /**
     * 添加版本材料

     * @return
     */
    Long addcodesetVersionMaterial(Long codesetVersionid, String material_number, String name, String spec, String num, String unit, String type, int sort);

    Long addcodesetVersionModle(Long codesetVersionid, String name ,String apec);

    /**
     * 获取典设列表
     * @param name 典设名称
     * @param codeset_version_id 典设版本
     * @param pt_id 典设类型
     * @param keyword 查询关键字
     * @param s 开始序列
     * @param n 获取条数
     * @return
     */
    List<Map<String,Object>> codesetList(String filter,String name,String codeset_version_id,String pt_id,String keyword,Integer s,Integer n);
    List<Map<String,Object>> modleList(String name,String codeset_version_id,Integer s,Integer n);

    /**
     * 获取典设材料
     * @param id 典设id
     * @return
     */
    List<Map<String,Object>> codesetMaterial(Long id);
    List<Map<String, Object>> modelMaterial(Long modleid);
    String versionidallcount(Long versionid );
    //材料或者模块列表
    List<Map<String,Object>> likeNameMList(String versionid ,Long matId,Integer s,Integer n);
    List<Map<String,Object>> likeNameCodesetMaterial(String versionid ,Long matId,Integer s,Integer n);

    /**
     *   根据典设材料id删除典设材料
     * @param codesetMaterialid
     */
    void delcodesetMaterial(Long codesetMaterialid);
    void impcodesetModule(Long moduleid ,Long codesetid);
    void impcodesetMaterial(Long materialid ,Long codesetid);
    void impModleMaterial(Long modle_id ,String material_number);
    void delmodleMaterial(Long model_material_id);
    void modifymodleMaterial (Long model_material_id, double num);
    void changeCodesetMaterialorModle(Map<String,String> param);
}
